#include <iostream>
#include <exception>  //exception类的头文件
using namespace std;
/*
	throw抛出C++定义好的异常类型
*/

int otherfun(int n)
{
	invalid_argument arg("我错了,我不该这么做");
	if(n>=10 && n<=100)  //成功
		return 0;
	else if(n>100)//失败
		throw arg; //抛出C++定义好的异常类型
	else
		throw 55.5; //抛出浮点型异常
}

int main()
{
	try
	{
		otherfun(166); 
	}catch(double n)  //专门负责捕捉浮点型异常
	{
		cout<<"otherfun调用失败,抛出了浮点型异常，参数n的值是: "<<n<<endl;
		return -1;
	}catch(invalid_argument &n)  //专门负责捕捉invalid_argument异常
	{
		cout<<"otherfun调用失败,抛出了invalid_argument的类对象"<<endl;
		//类对象n调用成员函数what
		cout<<"返回值是: "<<n.what()<<endl;
		return -1;
	}
	
	cout<<"otherfun调用成功了，主程序继续往后执行"<<endl;
	return 0;
}